package com.ffws.H08.utils;

import com.baomidou.mybatisplus.core.toolkit.LambdaUtils;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import com.ffws.H08.model.po.H08FireData;
import org.apache.ibatis.reflection.property.PropertyNamer;

import java.beans.Introspector;

/**
 * 获取属性名工具类
 *
 * @author asurplus
 */
public class FieldUtils {

    /*public static void main(String[] args) {
        String fieldName = FieldUtils.getFieldName(H08FireData::getCreateDate);
        System.out.println(fieldName);
    }*/

    /**
     * 获取Java属性名
     *
     * @return userName
     */
    public static <T, R> String getFieldName(SFunction<T, R> func) {
        // 获取 lambda 表达式实现方法的名称
        String fieldName = LambdaUtils.resolve(func).getImplMethodName();
        // 去掉前缀：get，is
        fieldName = PropertyNamer.methodToProperty(fieldName);
        // 首字母小写
        return Introspector.decapitalize(fieldName);
    }
}
